package com.dominator.utils.pay;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;



/**
 * Xml 解析器
 * 
 * @author asher.xu
 * @version 1.0 2015年8月5日 上午1:00:17 asher.xu
 */
public class XmlParser {
	
	private XmlParser() {}
	
	/**
	 * 解析 xml
	 * 
	 * @param xml
	 * @return
	 * @author asher.xu
	 * @version 1.0 2015年8月5日 上午1:01:25 asher.xu
	 */
	public static Object parse(String xml) {
		Element root = doParse(xml);
		String returnCode = root.elementText("return_code");
		if ("text".equals(returnCode))
			return parseInTextMsg(root, returnCode);
		return root;
	}
	
	
	
	/**
	 * 解析 xml 返回 Element
	 * 
	 * @param xml
	 * @return
	 * @author asher.xu
	 * @version 1.0 2015年8月5日 上午10:46:08 asher.xu
	 */
	public static Element doParse(String xml) {
		try {
			Document doc = DocumentHelper.parseText(xml);
			Element root = doc.getRootElement();
			return root;
		} catch (DocumentException e) {
			throw new RuntimeException(e);
		}
	}
	
	
	private static Object parseInTextMsg(Element root, String msgType) {
		InTextMsg msg = new InTextMsg(null, null, null, msgType);
		msg.setContent(root.elementText("Content"));
		msg.setMsgId(root.elementText("MsgId"));
		return msg;
	}
	
	
}


